﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Universidad.DataAccess;
using Universidad.DataAccess.Ado;

namespace Universidad.Negocio.TransactionScript
{
    public class NotasTS
    {
        public const string Aprobado = "A";
        public const string Desaprobado = "D";

        public const int AprobadoPromediable = 8;
        public const int DesaprobadoPromediable = 2;


        public float CalcularPromedioAlumno(int alumnoId)
        {
            NotasDao dao = new NotasDao();
            DataTable notas = dao.NotasPorAlumno(alumnoId);
            float sumatoria = 0;
            foreach (DataRow row in notas.Rows)
            {
                sumatoria += obtenerValorPromediable(row["Valor"].ToString());
            }

            return sumatoria / notas.Rows.Count;
        }

        private float obtenerValorPromediable(string valor)
        {
            int valorNumerico = 0;
            bool esNumerico = int.TryParse(valor, out valorNumerico);
            if (!esNumerico)
            {
                switch (valor)
                {
                    case Aprobado:
                        valorNumerico = AprobadoPromediable;
                        break;
                    case Desaprobado:
                        valorNumerico = DesaprobadoPromediable;
                        break;
                }

            }
            return valorNumerico;
        }

    }
}
